package com.gopay.common.domain.gsrt;
// Generated 2016-1-16 17:20:08 by Hibernate Tools 4.3.1.Final

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Entity: 转账
 */
@Entity
@Table(name = "GSRT_ACCOUNT_TRANSFER")
public class GsrtAccountTransfer implements java.io.Serializable {

    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/** 
     * 转账ID
     */
    private Long id;

    /** 
     * 商户订单号
     */
    private String merOrderId;

    /** 
     * 商户id
     */
    private String merCustId;

    /** 
     * 商户提交时间
     */
    private Date merTxnTm;

    /** 
     * 转账模式-----01:【网贷平台账户】转【网贷风险金账户】02:【网贷平台账户】转【网贷专用账户】03：【网贷平台账户】转【网贷担保方账户】
     */
    private String transferMode;

    /** 
     * 手续费
     */
    private BigDecimal totalOrderFeeAmt;

    /** 
     * 手续费承担方-------1：P2P商户平台
    2：P2P专属账户
    
     */
    private String feepayer;

    /** 
     * 付款方客户ID
     */
    private String payCustId;

    /** 
     * 主收款方客户ID
     */
    private String mainRecvCustId;

    /** 
     * 付款方账户
     */
    private String payAcct;

    /** 
     * 主收款方账户
     */
    private String mainRecvAcct;

    /** 
     * 国付宝交易日期
     */
    private Date gopayTxnTm;
    
    /** 
	 * 交易处理完成时间
	 */
    private Date tranFinishTime;

    /** 
     * 国付宝订单号
     */
    private String gopayOrderId;

    /** 
     * 转账金额
     */
    private BigDecimal merTxnAmt;

    /** 
     * 创建时间
     */
    private Date createdTs;

    /** 
     * 交易状态
     */
    private int txnStaCd;

    /** 
     * 交易原因
     */
    private String commentRk;

    /** 
     * 收款方协议号   --------转账模式为02、03时必填
     */
    private String constracterId;

    /** 
     * 记录最后修改时间
     */
    private Date lastUpdTs;

    /** 
     * 预留字段3
     */
    private String remark3;

    /** 
     * 预留字段2
     */
    private String remark2;

    /** 
     * 备注
     */
    private String remark;

    /** 
     * 乐观锁版本号
     */
    private Long version;

    
    /** 
     * 网关交易流水号
     */
    private Long transDtlSq;
    public GsrtAccountTransfer() {
    }

    

    public GsrtAccountTransfer(Long id, String merOrderId, String merCustId,
			Date merTxnTm, String transferMode, BigDecimal totalOrderFeeAmt,
			String feepayer, String payCustId, String mainRecvCustId,
			String payAcct, String mainRecvAcct, Date gopayTxnTm,
			Date tranFinishTime, String gopayOrderId, BigDecimal merTxnAmt,
			Date createdTs, int txnStaCd, String commentRk,
			String constracterId, Date lastUpdTs, String remark3,
			String remark2, String remark, Long version, Long transDtlSq) {
		super();
		this.id = id;
		this.merOrderId = merOrderId;
		this.merCustId = merCustId;
		this.merTxnTm = merTxnTm;
		this.transferMode = transferMode;
		this.totalOrderFeeAmt = totalOrderFeeAmt;
		this.feepayer = feepayer;
		this.payCustId = payCustId;
		this.mainRecvCustId = mainRecvCustId;
		this.payAcct = payAcct;
		this.mainRecvAcct = mainRecvAcct;
		this.gopayTxnTm = gopayTxnTm;
		this.tranFinishTime = tranFinishTime;
		this.gopayOrderId = gopayOrderId;
		this.merTxnAmt = merTxnAmt;
		this.createdTs = createdTs;
		this.txnStaCd = txnStaCd;
		this.commentRk = commentRk;
		this.constracterId = constracterId;
		this.lastUpdTs = lastUpdTs;
		this.remark3 = remark3;
		this.remark2 = remark2;
		this.remark = remark;
		this.version = version;
		this.transDtlSq = transDtlSq;
	}



	@Id
    @SequenceGenerator(name = "GsrtAccountTransferSequence", sequenceName = "GSRT_ACCOUNT_TRANSFER_SEQ")
    @GeneratedValue(generator = "GsrtAccountTransferSequence", strategy = GenerationType.SEQUENCE)
    @Column(name = "ID", unique = true, nullable = false, precision = 22, scale = 0)
    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Column(name = "MER_ORDER_ID", nullable = false, length = 30)
    public String getMerOrderId() {
        return this.merOrderId;
    }

    public void setMerOrderId(String merOrderId) {
        this.merOrderId = merOrderId;
    }

    @Column(name = "MER_CUST_ID", nullable = false, length = 10)
    public String getMerCustId() {
        return this.merCustId;
    }

    public void setMerCustId(String merCustId) {
        this.merCustId = merCustId;
    }

    @Column(name = "MER_TXN_TM", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    public Date getMerTxnTm() {
        return this.merTxnTm;
    }

    public void setMerTxnTm(Date merTxnTm) {
        this.merTxnTm = merTxnTm;
    }

    @Column(name = "TRANSFER_MODE", nullable = false, length = 10)
    public String getTransferMode() {
        return this.transferMode;
    }

    public void setTransferMode(String transferMode) {
        this.transferMode = transferMode;
    }

    @Column(name = "TOTAL_ORDER_FEE_AMT", precision = 20)
    public BigDecimal getTotalOrderFeeAmt() {
        return this.totalOrderFeeAmt;
    }

    public void setTotalOrderFeeAmt(BigDecimal totalOrderFeeAmt) {
        this.totalOrderFeeAmt = totalOrderFeeAmt;
    }

    @Column(name = "FEEPAYER", length = 2)
    public String getFeepayer() {
        return this.feepayer;
    }

    public void setFeepayer(String feepayer) {
        this.feepayer = feepayer;
    }

    @Column(name = "PAY_CUST_ID",  length = 10)
    public String getPayCustId() {
        return this.payCustId;
    }

    public void setPayCustId(String payCustId) {
        this.payCustId = payCustId;
    }

    @Column(name = "MAIN_RECV_CUST_ID",  length = 10)
    public String getMainRecvCustId() {
        return this.mainRecvCustId;
    }

    public void setMainRecvCustId(String mainRecvCustId) {
        this.mainRecvCustId = mainRecvCustId;
    }

    @Column(name = "PAY_ACCT", length = 19)
    public String getPayAcct() {
        return this.payAcct;
    }

    public void setPayAcct(String payAcct) {
        this.payAcct = payAcct;
    }

    @Column(name = "MAIN_RECV_ACCT", length = 19)
    public String getMainRecvAcct() {
        return this.mainRecvAcct;
    }

    public void setMainRecvAcct(String mainRecvAcct) {
        this.mainRecvAcct = mainRecvAcct;
    }

    @Column(name = "GOPAY_TXN_TM", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    public Date getGopayTxnTm() {
        return this.gopayTxnTm;
    }

    public void setGopayTxnTm(Date gopayTxnTm) {
        this.gopayTxnTm = gopayTxnTm;
    }

    @Column(name = "TRAN_FINISH_TIME")
	@Temporal(TemporalType.TIMESTAMP)
	public Date getTranFinishTime() {
		return this.tranFinishTime;
	}

	public void setTranFinishTime(Date tranFinishTime) {
		this.tranFinishTime = tranFinishTime;
	}
    
    @Column(name = "GOPAY_ORDER_ID", nullable = false, length = 30)
    public String getGopayOrderId() {
        return this.gopayOrderId;
    }

    public void setGopayOrderId(String gopayOrderId) {
        this.gopayOrderId = gopayOrderId;
    }

    @Column(name = "MER_TXN_AMT", nullable = false, precision = 20)
    public BigDecimal getMerTxnAmt() {
        return this.merTxnAmt;
    }

    public void setMerTxnAmt(BigDecimal merTxnAmt) {
        this.merTxnAmt = merTxnAmt;
    }

    @Column(name = "CREATED_TS", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    public Date getCreatedTs() {
        return this.createdTs;
    }

    public void setCreatedTs(Date createdTs) {
        this.createdTs = createdTs;
    }

    @Column(name = "TXN_STA_CD", nullable = false, precision = 5, scale = 0)
    public int getTxnStaCd() {
        return this.txnStaCd;
    }

    public void setTxnStaCd(int txnStaCd) {
        this.txnStaCd = txnStaCd;
    }

    @Column(name = "COMMENT_RK", length = 50)
    public String getCommentRk() {
        return this.commentRk;
    }

    public void setCommentRk(String commentRk) {
        this.commentRk = commentRk;
    }

    @Column(name = "CONSTRACTER_ID", length = 14)
    public String getConstracterId() {
        return this.constracterId;
    }

    public void setConstracterId(String constracterId) {
        this.constracterId = constracterId;
    }

    @Column(name = "LAST_UPD_TS")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getLastUpdTs() {
        return this.lastUpdTs;
    }

    public void setLastUpdTs(Date lastUpdTs) {
        this.lastUpdTs = lastUpdTs;
    }

    @Column(name = "REMARK3", length = 50)
    public String getRemark3() {
        return this.remark3;
    }

    public void setRemark3(String remark3) {
        this.remark3 = remark3;
    }

    @Column(name = "REMARK2", length = 50)
    public String getRemark2() {
        return this.remark2;
    }

    public void setRemark2(String remark2) {
        this.remark2 = remark2;
    }

    @Column(name = "REMARK", length = 90)
    public String getRemark() {
        return this.remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Column(name = "VERSION", precision = 22, scale = 0)
    public Long getVersion() {
        return this.version;
    }

    public void setVersion(Long version) {
        this.version = version;
    }

	@Column(name = "TRANS_DTL_SQ", precision = 22, scale = 0)
	public Long getTransDtlSq() {
		return transDtlSq;
	}
	

	public void setTransDtlSq(Long transDtlSq) {
		this.transDtlSq = transDtlSq;
	}
}
